7a60c1e293330b4ad233d4550b90008d453ede01,src/gr/uom/java/ast/decomposition/matching/ASTNodeMatcher.java,ASTNodeMatcher,match,#SimpleName#Object#,1781
Before Change
else if(nodeBinding.getKind() == IBinding.TYPE && otherBinding.getKind() == IBinding.TYPE) {
ITypeBinding nodeTypeBinding = (ITypeBinding)nodeBinding;
ITypeBinding otherTypeBinding = (ITypeBinding)otherBinding;
if((!nodeTypeBinding.isEqualTo(otherTypeBinding) || !nodeTypeBinding.getQualifiedName().equals(otherTypeBinding.getQualifiedName())) && typeMatch) {
Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),
otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
}
else if(nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
if(!node.getIdentifier().equals(o.getIdentifier())) {
Difference diff = new Difference(node.getIdentifier(),o.getIdentifier(),DifferenceType.VARIABLE_NAME_MISMATCH);
astNodeDifference.addDifference(diff);
}
}
}
if(!typeMatch) {
Difference diff = new Difference(node.resolveTypeBinding().getQualifiedName(),o.resolveTypeBinding().getQualifiedName(),DifferenceType.VARIABLE_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
else {
if(nodeBinding != null && otherBinding != null && nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
IVariableBinding nodeVariableBinding = (IVariableBinding)nodeBinding;
IVariableBinding otherVariableBinding = (IVariableBinding)otherBinding;
ITypeBinding nodeTypeBinding = nodeVariableBinding.getType();
ITypeBinding otherTypeBinding = otherVariableBinding.getType();
if(nodeTypeBinding != null && otherTypeBinding != null && (!nodeTypeBinding.isEqualTo(otherTypeBinding) || !nodeTypeBinding.getQualifiedName().equals(otherTypeBinding.getQualifiedName()))) {
Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
}
}
}
else {
if(typeMatch) {
if(other instanceof Expression && !(other instanceof NullLiteral)) {
Expression o = (Expression)other;
ITypeBinding nodeTypeBinding = node.resolveTypeBinding();
ITypeBinding otherTypeBinding = o.resolveTypeBinding();
if((!nodeTypeBinding.isEqualTo(otherTypeBinding) || !nodeTypeBinding.getQualifiedName().equals(otherTypeBinding.getQualifiedName()))) {
Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
After Change
}
}
else if(nodeBinding.getKind() == IBinding.TYPE && otherBinding.getKind() == IBinding.TYPE) {
ITypeBinding nodeTypeBinding = (ITypeBinding)nodeBinding;
ITypeBinding otherTypeBinding = (ITypeBinding)otherBinding;
if(subclassTypeMismatch(nodeTypeBinding, otherTypeBinding) && typeMatch) {
Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),
otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
}
else if(nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
if(!node.getIdentifier().equals(o.getIdentifier())) {
Difference diff = new Difference(node.getIdentifier(),o.getIdentifier(),DifferenceType.VARIABLE_NAME_MISMATCH);
astNodeDifference.addDifference(diff);
}
}
}
if(!typeMatch) {
Difference diff = new Difference(node.resolveTypeBinding().getQualifiedName(),o.resolveTypeBinding().getQualifiedName(),DifferenceType.VARIABLE_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
else {
if(nodeBinding != null && otherBinding != null && nodeBinding.getKind() == IBinding.VARIABLE && otherBinding.getKind() == IBinding.VARIABLE) {
IVariableBinding nodeVariableBinding = (IVariableBinding)nodeBinding;
IVariableBinding otherVariableBinding = (IVariableBinding)otherBinding;
ITypeBinding nodeTypeBinding = nodeVariableBinding.getType();
ITypeBinding otherTypeBinding = otherVariableBinding.getType();
if(nodeTypeBinding != null && otherTypeBinding != null && subclassTypeMismatch(nodeTypeBinding, otherTypeBinding)) {
Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);
astNodeDifference.addDifference(diff);
}
}
}
}
else {
if(typeMatch) {
if(other instanceof Expression && !(other instanceof NullLiteral)) {
Expression o = (Expression)other;
ITypeBinding nodeTypeBinding = node.resolveTypeBinding();
ITypeBinding otherTypeBinding = o.resolveTypeBinding();
if(subclassTypeMismatch(nodeTypeBinding, otherTypeBinding)) {
Difference diff = new Difference(nodeTypeBinding.getQualifiedName(),otherTypeBinding.getQualifiedName(),DifferenceType.SUBCLASS_TYPE_MISMATCH);